package com.tedu.Day02.oop.test;
/**
 *   普通类    抽象类     接口类
 *                     【关系】         【特点】
 *       类与类          继承     只能单继承，可多层继承
 *       类与抽象类       继承     可以单继承，不可以多继承
 *       抽象类与抽象类    继承     只能单继承，可多层继承
 *       类与接口          实现    可以单继承，可以多实现
 *                               并且继承同时实现多个接口
 *       接口与接口       继承      可以单继承，可以多继承
 */
/* 作业1：抽象类与接口区别和关系？简答
* 抽象类和接口都是面向对象编程中的重要概念，它们之间有以下区别和联系：

区别：

一、语法方面

- 抽象类：可以包含抽象方法和非抽象方法，也可以有成员变量和构造方法。
- 接口：只能包含抽象方法和常量（默认 public static final），不能有普通方法的实现和成员变量，也没有构造方法。

二、继承/实现方式

- 抽象类：使用“extends”关键字来继承，一个类只能继承一个抽象类。
- 接口：使用“implements”关键字来实现，可以实现多个接口。

三、设计目的

- 抽象类：通常用于表示具有某些共同属性和行为的一组对象的抽象概念，为子类提供一个通用的模板，部分实现一些方法，让子类去具体实现剩余的方法。
- 接口：定义了一组行为规范或契约，强调特定的行为或能力，不关心具体的实现方式。

联系：

- 都可以被实现类实现，实现类需要实现抽象类中的抽象方法和接口中的所有方法，从而为具体的对象提供具体的行为实现。
- 在某些情况下，可以用接口来模拟抽象类的多继承功能，一个类可以实现多个接口，从而具备多种不同的行为能力。
*
*
* */




//5.接口与接口       继承      可以单继承，可以多继承
    interface Loo{}   interface Foo{}
interface Voo extends Loo,Foo{}

//4.类与接口          实现    可以单继承，可以多实现
 //   interface LOO{}  interface FOO{}
 //  class JOO{}
//  class Voo extends JOO implements  LOO, Foo{}

//3.  抽象类与抽象类    继承     只能单继承，可多层继承
//    abstract class Loo{}
//    abstract class Voo{}
//    abstract class Uoo extends Voo{}

//2.类与抽象类：继承
//abstract  class  Uoo{}    abstract class Voo{}
//class Loo extends Uoo{}


//1.类与类：继承---单继承
/*class Uoo{}
class Loo extends Uoo{}
class Voo extends Loo{}*/



public class 关系 {
}
